package edu.ptu.communityplatform.common.controller;


/**
 * @BelongsProject: communityPlatform
 * @BelongsPackage: edu.ptu.communityplatform.common.controller
 * @Author: HYJ
 * @CreateTime: 2025-04-05  02:43
 * @Description: 基础控制器类，提供通用数据封装方法
 * @Version: 1.0
 */
public class BaseController {
    /**
     * 创建表格数据响应对象（固定状态码200）
     *
     * @param rows 表格数据内容
     * @return 包含固定成功状态的数据封装对象
     */
    protected TableInfo dataInfo(Object rows) {
        return new TableInfo(200, "success", rows, 0);
    }

    /**
     * 根据操作状态生成JSON响应对象
     *
     * @param flag  操作状态标识（true-成功，false-失败）
     * @param rows  需要封装的业务数据
     * @param total 数据总数（用于分页场景）
     * @return 包含状态码、消息和数据的结果对象
     */
    public TableInfo toJson(Boolean flag, Object rows, Integer total) {
        return new TableInfo(
                flag ? 200 : 500,
                flag ? "success" : "error",
                rows,
                total);
    }

    public TableInfo toJson(Boolean flag, String msg) {
        return new TableInfo(
                flag ? 200 : 500,
                msg,
                null,
                null);
    }
}
